home *** CD-ROM | disk | FTP | other *** search
/ Hacker 3 / HACKER03.ISO / Igre / Quake Goodies / GLQoole / DATA1.CAB / Program_Executable_Files / bin / Qbsp.txt < prev    next >
Encoding:
Text File  |  1997-09-27  |  4.8 KB  |  128 lines

  1. TreeQBSP v1.55
  2.  
  3. Written by Greg Lewis (http://www-personal.umich.edu/~gregl/quake.html)
  4. Based on code originally by John Carmack, Ken Alverson, and Yahn Bernier.
  5.  
  6.  
  7. *** Summary
  8.  
  9. This version of QBSP is intended as a memory-friendly replacement for the
  10. currently existing variants of QBSP, including all features of other
  11. programs (except as noted below) and a few totally new improvements.  A
  12. list of the big features:
  13.  
  14.     Drastically reduced memory requirements (up to 90% for small maps,
  15.         averaging perhaps 50-60% for large maps)
  16.     Removed most hard-coded limits (MAX_MAP_PLANES, MAX_MAP_etc)
  17.     Removed hull files (*.h1 and *.h2)
  18.     Transparent water support for OpenGL cards
  19.     Multiwad (WorldCraft-style) support, unlimited number of WADs
  20.         (well OK, 1024 character limit on the "wad" string)
  21.     New, much cleaner .pts file for leaky maps
  22.     Supports .por files for the BSP editor
  23.     Support for Hipnotic/Ritual entity rotation
  24.     Creates a qbsp.log file containing the output it generates
  25.  
  26.  
  27. *** Important notes
  28.  
  29. The default behavior for this QBSP is slightly different from the QBSP
  30. that John Carmack originally released.  Most importantly, tjunc calculations
  31. are turned OFF by default, and can be enabled by a command line option.
  32. If you want to have exactly the same options as the original QBSP,
  33. run it like this:
  34.  
  35. qbsp -tjunc -oldaxis -oldleak [mapname]
  36.  
  37. Errors and warnings are now neatly categorized by number (similar to the
  38. way compilers work).  You will find a reference guide for these errors
  39. available in the errors.txt file included with this program.  This is
  40. available on my web page and may contain updated info on fixing problems.
  41.  
  42.  
  43. *** Todo list
  44.  
  45. The following are potential bugs and other issues that may be fixed in
  46. future versions of this program.  I cannot guarantee any future releases
  47. due to overload in work at school, but watch the web page for more info.
  48.  
  49.     Investigate internal limits on .bsp format (such as clipnodes < 32767)
  50.     Rare problem with new .pts file going through walls (if you see this,
  51.         please email me the .map)
  52.     Enhance the errors.txt file
  53.  
  54.  
  55. *** Contacting the author
  56.  
  57. I'll preface this by saying that I receive too much email already.  I
  58. won't reply to useless email.  I am definitely interested in hearing bug
  59. reports and feature requests for this program.  But before you send me
  60. email check out my site first to make sure that I haven't already
  61. addressed a particular bug or feature:
  62.  
  63. http://www-personal.umich.edu/~gregl/quake.html
  64.  
  65. If you still feel you have something important to tell me, you can email
  66. me at gregl@umich.edu.  If you are reporting a bug, chances are that I
  67. will want a copy of your .MAP to reproduce the error, so be prepared for
  68. me to ask for it.
  69.  
  70.  
  71. *** For the Curious
  72.  
  73. Currently, QBSP works something like this.  The numbers in parentheses
  74. after each section is the approximate percent of the total QBSP that each
  75. portion takes.  This entire cycle (except for LoadMapFile) is actually
  76. done 3 times in a row, once for each "hull".  Each hull contains information
  77. for one size of creature: point-size, player-size, and shambler-size.
  78.  
  79. LoadMapFile (2%)
  80.     Converts from the .MAP format into an internal map format.
  81. Brush_LoadEntity (18%)
  82.     Converts brushes from a plane-based description into a set of polygons
  83.     describing each brush.
  84. CSGFaces (50%)
  85.     Chops brushes into pieces where they intersect, removes the pieces that
  86.     are "inside" other brushes, and merges the remaining pieces back
  87.     together.
  88. SolidBSP (6%)
  89.     Builds a BSP tree for the level.
  90. Portalize (6%)
  91.     Creates the "portals" that vis uses, from the BSP information.
  92. FillOutside (0.1%)
  93.     Checks for leaks in the level, and strips away the "outside" area of
  94.     the level if it is sealed.  If there is a leak, writes the .pts file.
  95. MergeAll (1%)
  96.     Merges more surfaces together, once the outside has been removed.
  97. SolidBSP (5%)
  98.     Builds another BSP tree, now that the outside has been removed.
  99. Portalize (4%)
  100.     Creates another set of portals using the new BSP tree.
  101. MakeFaceEdges (4%)
  102. GrowRegions (0%)
  103.     These two perform some final processing of information before storing
  104.     it in the .BSP file.
  105.  
  106. *** Credits
  107.  
  108. John Carmack for the original code
  109. Ken Alverson for wqbsp source
  110. Yahn Bernier for ywbsp source and helpful advice
  111. ArchVile for general qbsp algorithm help
  112. Crowbar for -transsky and -splitspecial stuff
  113. EvlGenius for -noverbose
  114. Everyone else for everything else
  115.  
  116. *** Revision log
  117.  
  118. v1.55
  119.  
  120. Attempts to heal degenerates edges automatically
  121. Changed the loading order of brushes/faces back to reverse, same as other qbsp
  122.     variants, to fix .prt bloat problems
  123. Fixed -onlyents with rotation
  124. Removed debug printfs
  125.  
  126. v1.50
  127.  
  128. The first thing.  More dynamic memory everywhere.